package gui;

/**
 *
 * @author igo
 */
public interface  Controlador{

    /**
     * Método que insere um objeto Funcionario na camada de negócio
     * chamando a função negocio.inserir(Object objeto);
     * para que seja inserido no banco de dados
     * e exibe a mensagem de resultado
     */
    public void inserir();

    /**
     * Método que passa um objeto para a camada de Negócio
     * chamando a função negocio.alterar(Object o);
     * para que seja alterado no banco de dados
     * e exibe a mensagem de resultado
     */
    public void alterar();

    /**
     * Método que passa um objeto para a camada de Negócio
     * chamando a função negocio.excluir(Object o);
     * para que seja excluído no banco de dados
     * e exibe a mensagem de resultado
     */
    public void excluir();

    /**
     * Método que chama a função negocio.listar();
     * Recebe uma lista(List<Object>)  que será passada
     * como parâmetro para a janela Lista
     */
    public void listar();

    /**
     * Método que chama a função negocio.pesquisar();
     * Recebe uma lista(List<Object>) que será passada
     * como parâmetro para a janela Lista
     */
    public void pesquisar();

    /**
     * Método que é chamado pela janelaLista para
     * devolver à janelaCadastro o controle do fluxo
     * O método chama a função atualizaObject da janelaCadastro
     */
    public void preparaJanelaCadastro();

    /**
     * método que é chamado para devolver ao controlador
     * que chamou o CDU o controle da aplicação
     */
    public void encerrar();

    /**
     * esse método é usado para caso de composição de
     * classes com listas de objetos de outras entidades
     * do banco de dados
     */
    public void cadastrarComposicao();

    /**
     * @param janelaCadastro the janelaCadastro to set
     */
    public void setJanelaCadastro(JanelaCadastro janelaCadastro);

    /**
     * @return the Objeto
     */
    public Object getObject();

    /**
     * @param Object the objeto to set
     */
    public void setObject(Object o);

}